package com.xf.day06

object FunctionTest {
  def main(args: Array[String]): Unit = {

    // 普通函数 求和
    val sumCnt = f1(2, 3)
    println(sumCnt)

    // 通过匿名变量调用匿名函数
    val num = f2(1, 6)
    println(num)


    (a: Int, b: Int) => {
      a + b
    }


    // 声明一个匿名函数, 并赋值给一个变量
    val cal = ((a: Int, b: Int) => {
      a + b
    })(1, 2)

    println(cal)

    //调用高阶函数
    val result = f3(2, 3, (a: Int, b: Int) => a * b)
    println(result)  // 6

    //调用高阶函数
    val result2 = f3(2, 3, (a:Int, b:Int) => a+ b )
    println(result2)
  }

  // 普通函数
  def f1(a: Int, b: Int) = {
    a + b
  }

  // 声明一个匿名函数
  val f2 = ( a: Int, b: Int ) => { a+ b }

  ( a: Int, b: Int ) => { a+ b }

 // 高阶函数
  def f3(a:Int, b:Int, f:(Int, Int) => Int )= {
     f(a,b)
  }

}
